<!-- Copyright 2009 (c) - GNU GPLv3 -->

<vexi xmlns:ui="vexi://ui" xmlns="footywiz">
    <ui:box align="topleft" height="16" layout="place">
        <ui:box id="font" fill=":.image.gamefont" />
        
        var map = static.charmap;
        
        thisbox.textchar ++= function(v) {
            cascade = v;
            if (v==' ') {
                $font.display = false;
                width = 8;
            } else {
                $font.display = true;
                var c = map[v.toUpperCase()];
                if (c==null) throw "Unsupported character: '"+v+"'";
                $font.x = -c[0];
                $font.y = -c[1];
                width = c[2];
            }
        }
        
    </ui:box>
    
    static.charmap = {
        "A":[0,0,13], "B":[16,0,11], "C":[32,0,12], "D":[48,0,13], "E":[64,0,11], "F":[80,0,11], "G":[96,0,13], "H":[112,0,14],
        "I":[0,16,10], "J":[16,16,13], "K":[32,16,10], "L":[48,16,10], "M":[64,16,16], "N":[80,16,14], "O":[96,16,15], "P":[112,16,10],
        "Q":[0,32,16], "R":[16,32,12], "S":[32,32,12], "T":[48,32,12], "U":[64,32,13], "V":[80,32,12], "W":[96,32,15], "X":[112,32,14],
        "Y":[0,48,13], "Z":[16,48,14], ".":[32,48,4], ",":[48,48,5], "?":[64,48,10], "!":[80,48,4], "/":[96,48,10], "\\":[112,48,9],
        "a":[0,64,13], "$":[16,64,12], "@":[32,64,16], "#":[48,64,16], "&lt;":[64,64,8], ">":[80,64,8], "\"":[96,64,8], "'":[112,64,4],
        "1":[0,80,8], "2":[16,80,11], "3":[32,80,10], "4":[48,80,12], "5":[64,80,11], "6":[80,80,11], "7":[96,80,12], "8":[112,80,11],
        "9":[0,96,11], "0":[16,96,12], ":":[32,96,4], ";":[48,96,5], "*":[64,96,10], "&amp;":[80,96,14], "-":[96,96,8], "_":[112,96,13],
        "+":[0,112,10], "=":[16,112,10], "^":[32,112,9], "(":[48,112,7], ")":[64,112,7], "[":[80,112,7], "]":[96,112,7], "%":[112,112,15]
    };
    
</vexi>